package com.xbongbong.pro.performanceset.pojo;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xbongbong.pro.statistic.enums.StatisticsTypeEnum;
import com.xbongbong.saas.enums.PerformanceOperatorEnum;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.apache.commons.collections4.CollectionUtils;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
import java.util.Objects;

/**
 * @ClassName PerformanceChartListPojo
 * @Description TODO
 * @Author mengna.Deng
 * @Date 2022/3/11 14:00
 * @Version 1.0
 */
@Getter
@Setter
@ToString
public class PerformanceChartListPojo implements Serializable {
    private static final long serialVersionUID = -1L;
    /**
     * 目标id
     */
    private Long id;
    /**
     * 目标类型 1系统目标 2自定义目标
     */
    @NotNull(message = "指标类型不能为空")
    @Range(min=1,max=2,message = "目标类型传值异常")
    private Integer statisticsType;
    /**
     * 目标名称
     */
    private String name;
    /**
     * 考核指标
     */
    private String sourceAttr;
    /**
     * 归属人字段，{"name":"","attr":"userId"}。按照哪一个归属字段统计（如创建人、签订人等）
     */
    private String belongAttr;
    /**
     * 统计日期，{"name":"","attr":""}。按照哪一个时间范围字段进行统计（如创建时间、自定义的时间类型字段）
     */
    private String timeAttr;
    /**
     * 更新时间
     */
    private Long updateTime;
    /**
     * 是否开启：0关闭,1开启
     */
    @NotNull(message = "是否开启不能为空")
    @Range(min=0,max=1,message = "是否开启传值异常")
    protected Integer enable;
    /**
     * 目标操作
     * 系统目标只有两个按钮：“编辑”，“目标值设置”
     */
    private JSONArray operate;
    /**
     * 备注
     */
    private String memo;
    /**
     * 创建人
     */
    private String creatorId;
    /**
     * 考核方式：1动态数值型,2固定数值型
     */
    private Integer assessType;
    /**
     * 最小考核周期：1每月,2每周,3每天
     */
    private Integer minCycle;
    /**
     * 考核对象--部门名称
     */
    private String depNames;
    /**
     * 单位
     */
    private String unit;

}
